gusucode.com > 《MATLAB图像与视频处理实用案例详解》代码 > 《MATLAB图像与视频处理实用案例详解》代码/第 14 章 基于主成分分析的图像压缩和重建/pcaimage.m
function [Ipca,ratio,contribution]=pcaimage(I,pset,block) if nargin<1 I=imread('football.jpg'); end if nargin<2 pset=3; end if nargin<3 block=[16 16]; end if ndims(I)==3 I=rgb2gray(I); end X=im2col(double(I),block,'distinct')'; [n,p]=size(X); m=min(pset,p); [coeff,score,contribution]=pcasample(X,m); X=score*coeff'; Ipca=cast(col2im(X',block,size(I),'distinct'),class(I)); ratio=n*p/(n*m+p*m);